#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
using namespace std;

int n;
string s;

int main()
{
    cin >> n >> s;
    int sum[2] = { 0 };
    int ret = 0;
    for (auto& ch : s)
    {
        sum[ch - '0']++;
    }

    int left = 0, right = 0, half = n / 2;
    int count[2] = { 0 };
    while (right < n - 1)
    {
        count[s[right] - '0']++;
        while (right - left + 1 > half)
        {
            count[s[left++] - '0']--;
        }
        if (right - left + 1 == half)
        {
            if (count[0] * 2 == sum[0] && count[1] * 2 == sum[1])
            {
                ret += 2;
            }
        }
        right++;
    }
    cout << ret << endl;
    return 0;
}
///**
// * struct TreeNode {
// *	int val;
// *	struct TreeNode *left;
// *	struct TreeNode *right;
// *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
// * };
// */
//class Solution {
//public:
//    int dfs(TreeNode* root)
//    {
//        if (root == nullptr) return 0;
//        int left = dfs(root->left);
//        if (left == -1) return -1;
//        int right = dfs(root->right);
//        if (right == -1) return -1;
//        return abs(left - right) <= 1 ? max(left, right) + 1 : -1;
//    }
//
//    bool IsBalanced_Solution(TreeNode* pRoot) {
//        return dfs(pRoot) != -1;
//    }
//};


//#include <iostream>
//#include <string>
//
//using namespace std;
//
//string s;
//int n;
//
//int main()
//{
//    cin >> n >> s;
//    int left = 0, right = n / 2 - 1;
//    int half = n / 2;
//    int ret = 0;
//    while (left < half)
//    {
//        int count0 = 0, count1 = 0;
//        int wcount0 = 0, wcount1 = 0;
//        int i = left;
//        while (i <= right)
//        {
//            if (s[i] == '0') count0++;
//            else count1++;
//            i++;
//        }
//        while (i < n)
//        {
//            if (s[i] == '0') wcount0++;
//            else wcount1++;
//            i++;
//        }
//        for (int j = 0; j < left; j++)
//        {
//            if (s[j] == '0') wcount0++;
//            else wcount1++;
//        }
//
//        if (count0 == wcount0 && count1 == wcount1)
//        {
//            ret += 2;
//        }
//
//        left++, right++;
//    }
//
//    cout << ret << endl;
//
//    return 0;
//}